
// 自定义Promise构造函数, 并指定一个参数：excutor 执行器
function Promise(excutor){
    // 初始化状态属性值为pending
    this.PromiseState = "pending";
    // 初始化结果属性值为undefined
    this.PromiseResult = undefined;
    
    // 声明内部成功函数
    const success = (v) => {
        this.PromiseState = "fulfilled";
        this.PromiseResult = v;
    }

    // 声明内部失败函数
    const error = (r) => {
        this.PromiseState = "rejected";
        this.PromiseResult = r;
    }
    try {
        // 调用执行器
        excutor(success,error);
    } catch (err) {
        error(err.message);
    }
    
}

// 为当前自定义Promise构造函数的原型上添加then方法
Promise.prototype.then = function(onFulfilled, onRejected){
    // 根据当前promise对象的状态属性值来执行对应的回调函数
    if(this.PromiseState == "fulfilled"){
        onFulfilled(this.PromiseResult);
    }
    if(this.PromiseState == "rejected"){
        onRejected(this.PromiseResult);
    }
}



